package br.com.sendleemail.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

@SuppressWarnings("serial")
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
public class EmailMarketing implements Serializable {

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	private Long id;

	@Persistent
	private String nomeEmailEdicao;

	@Persistent
	private String assunto;

	@Persistent
	private String descricao;

	@Persistent
	private String contaEnvioTeste;

	/**
	 * HTML / TXT / HTML e TXT
	 */
	@Persistent
	private String formato;

	@Persistent
	private Date dataEnvio;

	@Persistent(mappedBy = "emailMarketing")
	private Set<EmailMarketingCampoAdicional> emailMarketingCampoAdicionais;

	@Persistent
	private FiltroUsuario filtroUsuario;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNomeEmailEdicao() {
		return nomeEmailEdicao;
	}

	public void setNomeEmailEdicao(String nomeEmailEdicao) {
		this.nomeEmailEdicao = nomeEmailEdicao;
	}

	public String getAssunto() {
		return assunto;
	}

	public void setAssunto(String assunto) {
		this.assunto = assunto;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getContaEnvioTeste() {
		return contaEnvioTeste;
	}

	public void setContaEnvioTeste(String contaEnvioTeste) {
		this.contaEnvioTeste = contaEnvioTeste;
	}

	public String getFormato() {
		return formato;
	}

	public void setFormato(String formato) {
		this.formato = formato;
	}

	public Date getDataEnvio() {
		return dataEnvio;
	}

	public void setDataEnvio(Date dataEnvio) {
		this.dataEnvio = dataEnvio;
	}

	public Set<EmailMarketingCampoAdicional> getEmailMarketingCampoAdicionais() {
		return emailMarketingCampoAdicionais;
	}

	public void setEmailMarketingCampoAdicionais(
			Set<EmailMarketingCampoAdicional> emailMarketingCampoAdicionais) {
		this.emailMarketingCampoAdicionais = emailMarketingCampoAdicionais;
	}

	public FiltroUsuario getFiltroUsuario() {
		return filtroUsuario;
	}

	public void setFiltroUsuario(FiltroUsuario filtroUsuario) {
		this.filtroUsuario = filtroUsuario;
	}

}
